<?php

class Buscador
{

	public static function buscarPersona($opciones)
	{
		//opciones
		/* persona
		 * provincia
		 * edadMin
		 * edadMax
		 * amigosDe
		 * desde
		 * cantidad
		 */
		if(isset($opciones['persona']) and strlen($opciones['persona'])>0)
		{
			$nombrePer = str_replace(" ","",$opciones['persona']);
			$persona['sql']= "(soundex(concat(nombre,apellido1,apellido2)) = soundex('".$nombrePer."') or
				soundex(concat(nombre,apellido1)) = soundex('".$nombrePer."') or
				soundex(concat(nombre)) = soundex('".$nombrePer."') or
				soundex(concat(apellido1,apellido2)) = soundex('".$nombrePer."') or
				soundex(concat(apellido1)) = soundex('".$nombrePer."') or
				soundex(concat(apellido2)) = soundex('".$nombrePer."') or
				soundex(concat(nombre,apellido2,apellido1)) = soundex('".$nombrePer."'))";
			$datos[] = $persona;
		}
		
		if($opciones['provincia']!=0 and is_numeric($opciones['provincia']))
		{
			$provincia['contenido']=$opciones['provincia'];
			$provincia['sql'] ="id_provincia=".$opciones['provincia'];
			$datos[] = $provincia;
		}
		
		if(is_numeric($opciones['edadMin']) and is_numeric($opciones['edadMax']))
		{
			if($opciones['edadMin']>$opciones['edadMax'])
			{
				//Hacemos swap
				$tmp=$opciones['edadMin'];
				$opciones['edadMin']=$opciones['edadMax'];
				$opciones['edadMax']=$tmp;
			}
			
			$edad['sql']="(cumple <> '0000-00-00' and (DATEDIFF(now(),cumple)/365>".$opciones['edadMin']." and DATEDIFF(now(),cumple)/365<".$opciones['edadMax']."))";
			
		}	
		
		if(is_object($opciones['amigosDe']))
			$opciones['amigosDe']=$opciones['amigosDe']->getId();
			
		if(is_numeric($opciones['amigosDe']))
		{
			if($usuario->esAmigo($opciones['amigosDe']))
			{
				$sql="select id_amigo from amigos a
				JOIN usuarios u ON (u.id_usuario = a.id_amigo)
				WHERE a.id_usuario=".$opciones['amigosDe'];	
				$sqlCantidad="select count(*) from amigos a
				JOIN usuarios u ON (u.id_usuario = a.id_amigo)
				WHERE a.id_usuario=".$opciones['amigosDe'];	
				//$amigosDe = $opciones['amigosDe'];
			}
		}else{		
			$sql="select id_usuario from usuarios WHERE 1";	
			$sqlCantidad = "select count(*) from usuarios WHERE 1";
			//$amigosDe = $usuario->getId();
		}
		
		foreach($datos as $dato)
		{
			$sql .= " AND ".$dato['sql'];
			$sqlCantidad .= " AND ".$dato['sql'];
		}
		
		$opciones['desde']--;
		
		$totalesRes = mysql_query($sqlCantidad);
		
		$fila = mysql_fetch_array($totalesRes);
		$totales = $fila[0];
		
		$sql .= ' LIMIT '.$opciones['desde'].','.$opciones['cantidad'];
		
		$res=mysql_query($sql);
		$usuario=new Usuario();
		$jsonUsuarios = array();
		while($nombre=mysql_fetch_array($res,MYSQL_NUM))
		{
				$usuario->cargarUsuarioConId($nombre[0]);
				if($usuario->esAmigo($sesion->getUsuario()))
					$esAmigo = 1;
				else
					$esAmigo = 0;
					
				$jsonUsuario = array();
				$jsonUsuario['id'] = $usuario->getId();
				$jsonUsuario['nombre'] = $usuario->getNombre();
				$jsonUsuario['apellido1'] = $usuario->getApellido1();
				$jsonUsuario['apellido2'] = $usuario->getApellido2();
				$jsonUsuario['provincia'] = $usuario->getProvincia();
				$jsonUsuario['idFoto'] = $usuario->getFotoIdPrincipal();
				$jsonUsuario['nFoto'] = $usuario->getFotoNPrincipal();
				$jsonUsuario['esAmigo'] = $esAmigo;
				
				$jsonUsuarios[] = $jsonUsuario;
		}
		
		$info = array();
		$info['totales']=$totales;
		
		$json = array();
		$json["info"] = $info;
		$json["usuarios"] = $jsonUsuarios;
		return $json;
	}
}